package com.autoagent.ai_live_master.scriptRecommendation.vo;

import com.autoagent.ai_live_master.scriptRecommendation.Enum.LiveTypeEnum;
import com.autoagent.ai_live_master.scriptRecommendation.Enum.RecommendationPriority;
import com.autoagent.ai_live_master.scriptRecommendation.Enum.StyleEnum;
import com.autoagent.ai_live_master.scriptRecommendation.Enum.GenderEnum;
import com.autoagent.ai_live_master.scriptRecommendation.Enum.AreaEnum;
import com.autoagent.ai_live_master.scriptRecommendation.Enum.AbnormalMetricEnum;
import com.autoagent.ai_live_master.scriptRecommendation.entity.LiveStreamingPlan.Configuration;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 直播计划 VO对象
 * </p>
 */
@Data
public class LiveStreamingPlanVO {
    /**
     * 主键 ID
     */
    private Long id;

    /**
     * 所属直播间 ID
     */
    @NotNull(message = "直播间ID不能为空")
    private Long liveRoomId;

    /**
     * 话术配置名称
     */
    @NotBlank(message = "话术配置名称不能为空")
    private String name;

    /**
     * 关联的直播脚本ID
     */
    @NotBlank(message = "关联的脚本ID不能为空")
    private Long scriptId;

    /**
     * 直播间类型
     */
    @NotNull(message = "直播间类型不能为空")
    private LiveTypeEnum type;

    /**
     * 直播风格
     */
    @NotNull(message = "直播风格不能为空")
    private StyleEnum style;

    /**
     * 是否开启扩展话术效果
     */
    private Boolean expanded;

    /**
     * 是否启用当前话术配置
     */
    private Boolean enabled;

    /**
     * 本场直播产品信息
     */
    private String info;

    /**
     * 开始时间
     */
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;

    /**
     * 智能推荐优先级
     */
    private RecommendationPriority recommendationPriority;

    /**
     * 数据异动提示配置
     */
    private List<AbnormalMetricEnum> abnormalNotification;

    /**
     * 话术大师配置
     */
    private Configuration configuration;

    /**
     * 违禁词 ID 列表
     */
    private List<Long> bannedWords;

    /**
     * 电商收益相关 ID 列表
     */
    private List<Long> ecommerceRevenue;

    /**
     * 是否屏蔽福袋数据脉冲
     */
    private Boolean blockLuckyBagData;

    /**
     * 是否屏蔽抽奖活动数据脉冲
     */
    private Boolean blockLotteryData;

    /**
     * 性别偏好
     */
    private GenderEnum gender;

    /**
     * 地域偏好
     */
    private AreaEnum area;

    /**
     * 年龄段列表
     */
    private List<String> age;

    /**
     * 兴趣爱好列表
     */
    private List<String> interest;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;

    /**
     * 所属用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Integer userId;
}